package ar.edu.utn.frsf.tpae.a2013.g02.persistence.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Objeto del modelo de datos (persistente). Representa un Gasto
 * 
 * @author TPAE-grupo02
 * 
 */
@Entity
@Table(name = "gst")
public class Gasto {

	@Id
	@Column(name = "gst_id")
	@SequenceGenerator(name = "SecuenciaGasto", sequenceName = "seq_gst", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SecuenciaGasto")
	private Integer id;

	@OneToOne
	@JoinColumn(name = "gst_slg_id")
	private SolicitudDeGastos solicitud;

	@Column(name = "gst_fech")
	@Temporal(TemporalType.TIMESTAMP)
	private Date fecha;

	@Column(name = "gst_imp")
	private Float importe;

	@Column(name = "gst_nro_fact")
	private String numeroFactura;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public SolicitudDeGastos getSolicitud() {
		return solicitud;
	}

	public void setSolicitud(SolicitudDeGastos solicitud) {
		this.solicitud = solicitud;
	}

	public Date getFecha() {
		return fecha;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public Float getImporte() {
		return importe;
	}

	public void setImporte(Float importe) {
		this.importe = importe;
	}

	public String getNumeroFactura() {
		return numeroFactura;
	}

	public void setNumeroFactura(String numeroFactura) {
		this.numeroFactura = numeroFactura;
	}

	@Override
	public boolean equals(Object arg0) {
		if (!(arg0 instanceof Gasto)) {
			return false;
		}
		return this.getId() == ((Gasto) arg0).getId();
	}
}
